﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main1()
{
	//将字符串中⼤写字⺟全部转为⼩写字⺟，⼩写字⺟转成⼤写字⺟，其他字符保持不变。注：字符串的⻓度⼩于等于30，其中字符串中包含空格
	/*char ch[7] = "abcD  ,";*/
	char ch[30] = { 0 };
	//scanf("%s", &ch);//scanf 在读取字符串的时候，会把“敲”（Enter)遗留在缓冲区中
	getchar(ch);
	for (int i = 0; i <7; i++)
	{
		if ((ch[i] >= 'a') && (ch[i] <= 'z'))//小写变大写
		{
			ch[i] = ch[i] - 32;
		}
		else if ((ch[i] >= 'A') && (ch[i] <= 'Z'))//大写变小写
		{
			ch[i] = ch[i] + 32;
		}


	}
	for (int i = 0; i < 7; i++)
	{
		printf("%c", ch[i]);
	}
	printf("\n");
	return 0;
}
int main2()
{
	char ch = 0;
	while (scanf("%c", &ch) != EOF)
	{
		getchar();
		if ((ch >= 'a') && (ch <= 'z') || (ch >= 'A') && (ch <= 'Z'))
		{
			printf("%c is an alphabet.\n", ch);
		}
		else
		{
			printf("%c is not an alphabet.\n", ch);
		}
	}

	return 0;
}
int Average(int n, int m)
{
	return n + (m - n) / 2.0;//和二分查找设置中间下标的方法类似
}
int main4()
{
	//求两个整数的平均值,考虑数据溢出
	int n = 0, m = 0;
	scanf("%d %d", &n, &m);
	int ret = Average(n, m);
	printf("%d\n", ret);
	return 0;
}
#include<assert.h>
int my_strlen(const char* str)//只是访问，并不希望对应的内容被修改所以const 来修饰
{
	char* p = str;//str 是个地址，指向首字符的地址
	assert(p != NULL);//确保指针有效性，需要引入头文件#include<assert.h>
	int count = 0;//计数器
	while (*p != '\0')
	{
		count++;
		p++;//改变地址的位置
	}
	return count;
}
int main8()
{
	//模拟strlen 的实现
	int ret = my_strlen("abcd f");
	printf("%d\n", ret);
	return 0;
}
#include <stdio.h>
int main9()
{
	int x;
	float y;

	//" -13.45e12# 0"
	scanf("%d", &x);
	scanf("%f", &y);
	//也可以这样写
	//scanf("%d %f", &x, &y);
	printf("%d %f", x, y);
	return 0;
}
int main()
{
	////字符换行的读取
	//char a = 0, b = 0, c = 0, d = 0;
	////输入: f f 
	////      f f
	//scanf("%c %c", &a, &b);
	//getchar();// 读取换行符，因为scanf 在读取字符串的时候，会把“敲”（Enter)遗留在缓冲区中

	//scanf("%c %c", &c, &d);

	//printf("%c %c\n%c %c", a, b, c, d);
	//关于字符串的读取
	char ch1[30];
	getchar();
	printf("%s\n", ch1);

	return 0;
}
